package com.lyb.sort;

import java.util.Arrays;

/**
 * 选择排序
 */
public class SelectionSort {

    public static void main(String[] args) {
        int[] nums = {5,1,9,3,2,6,4,7,0,8};
        sort(nums);
    }
    public static void sort(int[] nums){
        //外层循环用于控制无序区间，无序区间具体为[i,length-1]
        for (int i = 0; i < nums.length; i++) {
            int minIndex = i;
            //寻找无序区间中最小值的索引
            for (int j = i + 1; j < nums.length; j++) {
                if (nums[j] < nums[minIndex]){
                    minIndex = j;
                }
            }
            //若最小值不是无序区间的第一位，则将最小值交换到第一位，将其并入有序区间
            if (minIndex != i){
                int temp = nums[i];
                nums[i] = nums[minIndex];
                nums[minIndex] = temp;
            }
        }
        System.out.println(Arrays.toString(nums));
    }
}
